package cn.school.thoughtworks.section3;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PracticeC {

        //实现练习要求，并改写该行代码。
        //统计出collection1中相同的元素的个数，形成collection3，collection3是一个map
        // 其中元素key是collection1中的元素value是该元素在collection1中出现次数，
        // 然后选出collection3跟collection2中value属性对应的list中的元素相同的元素,
        // 把他们的count，满3减1，输出减过之后的新集合
        private int FullThreeMinusOne(int count) {
            return count >= 3 ? count - count / 3 : count;
        }

    private Map<String, Integer> mapListToObject(List<String> collection) {

            Map<String, Integer> result = new HashMap<>();
            for (String item : collection) {
                result.merge(item, 1, (a, b) -> a + b);
            }
            return result;
        }

        Map<String, Integer> createUpdatedCollection(List<String> collectionA,
                Map<String, List<String>> object) {
            Map<String, Integer> result = new HashMap<>();
            for (Map.Entry<String, Integer> entry : mapListToObject(collectionA).entrySet()) {
                String ch = entry.getKey();
                int count = entry.getValue();
                if (!object.get("value").contains(ch)) {
                    result.put(ch, count);
                } else {
                    result.put(ch, FullThreeMinusOne(count));
                }
            }

            return result;
        }

}

